package com.tanhua.dubbo.api.mongo;

import com.tanhua.domain.mongo.Publish;
import com.tanhua.domain.vo.PageResult;
import org.bson.types.ObjectId;

import java.util.List;

public interface PublishApi {
    /**
     * 保存动态信息
     * @param publish
     */
    void save(Publish publish);

    /**
     * 查询好友动态，就是刷朋友圈，查询时间线表
     * @param userId 登陆用户id
     * @param page 当前页
     * @param pagesize 页大小
     * @return
     */
    PageResult findByTimeLine(Long userId, Integer page, Integer pagesize);

    /**
     * 根据登陆用户id，查询推荐动态
     */
    PageResult queryRecommendPublishList(Long userId, Integer page, Integer pagesize);

    /**
     * 用户动态 (我的动态)
     */
    PageResult findByAlbum(Long userId, int page, int pagesize);

    /**
     * 根据动态id查询动态对象
     */
    Publish findById(String publishId);

    /**
     * 动态分页
     */
    PageResult findPublishList(Integer page, Integer pagesize, Long uid, String state);

    /**
     * 修改状态
     */
    void updateById(String publishId, Integer state);

    /**
     * 推荐动态，根据pid集合查询动态列表
     */
    List<Publish> findByPids(List<Long> pidList);

    /**
     * 修改驳回动态
     */
    boolean PassState(String[] publishIdList);

    /**
     * 拒绝
     */
    boolean RejectState(String[] publishIdList);

    List<ObjectId> findByAlbum(Long userId);
}
